package com.wish.g3.account.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 收付款支付订单及业务关联表
 * </p>
 *
 * @author wish
 * @since 2022-11-23
 */
@TableName("tb_pay_order_detail")
public class PayOrderDetail implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 支付订单ID
     */
    private Long payOrderId;

    /**
     * 支付订单号
     */
    private String payOrderNo;

    /**
     * 业务订单ID(收付款计划)
     */
    private Long businessOrderPlanId;

    /**
     * 业务订单号(收付款计划)
     */
    private String businessOrderPlanNo;

    /**
     * 操作类型：1：充值（企业充值），2：提现（企业提现），3：收款（企业收款计划），4：付款（企付款款计划）
     */
    private Integer businessOrderType;

    /**
     * 收付款计划金额
     */
    private BigDecimal businessOrderAmount;

    /**
     * 商户id（由于暂时无法确定一次支付是否可能包含多个商户，故商户信息暂时加在支付订单明细中）	不同于流水表中的USERID，这里只记录相关的商户ID（流水表中的userid有可能是商户ID，也可能是租客ID）
     */
    private Long businessId;

    /**
     * 商户名
     */
    private String businessName;

    /**
     * 商户可结算金额（入金的时候，可以结算给商户虚拟账户的金额，比如商户充值金额，租户缴费金额，对账和结算时候用, 为0的时候，表示没有结算金额）
     */
    private BigDecimal canClearingAmount;

    /**
     * 备注
     */
    private String remarks;

    /**
     * 删除标识。0:未删除，1：删除
     */
    private Boolean delFlg;

    /**
     * 创建用户ID
     */
    private Long createUserid;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新用户ID
     */
    private Long updateUserid;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
    public Long getPayOrderId() {
        return payOrderId;
    }

    public void setPayOrderId(Long payOrderId) {
        this.payOrderId = payOrderId;
    }
    public String getPayOrderNo() {
        return payOrderNo;
    }

    public void setPayOrderNo(String payOrderNo) {
        this.payOrderNo = payOrderNo;
    }
    public Long getBusinessOrderPlanId() {
        return businessOrderPlanId;
    }

    public void setBusinessOrderPlanId(Long businessOrderPlanId) {
        this.businessOrderPlanId = businessOrderPlanId;
    }
    public String getBusinessOrderPlanNo() {
        return businessOrderPlanNo;
    }

    public void setBusinessOrderPlanNo(String businessOrderPlanNo) {
        this.businessOrderPlanNo = businessOrderPlanNo;
    }
    public Integer getBusinessOrderType() {
        return businessOrderType;
    }

    public void setBusinessOrderType(Integer businessOrderType) {
        this.businessOrderType = businessOrderType;
    }
    public BigDecimal getBusinessOrderAmount() {
        return businessOrderAmount;
    }

    public void setBusinessOrderAmount(BigDecimal businessOrderAmount) {
        this.businessOrderAmount = businessOrderAmount;
    }
    public Long getBusinessId() {
        return businessId;
    }

    public void setBusinessId(Long businessId) {
        this.businessId = businessId;
    }
    public String getBusinessName() {
        return businessName;
    }

    public void setBusinessName(String businessName) {
        this.businessName = businessName;
    }
    public BigDecimal getCanClearingAmount() {
        return canClearingAmount;
    }

    public void setCanClearingAmount(BigDecimal canClearingAmount) {
        this.canClearingAmount = canClearingAmount;
    }
    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }
    public Boolean getDelFlg() {
        return delFlg;
    }

    public void setDelFlg(Boolean delFlg) {
        this.delFlg = delFlg;
    }
    public Long getCreateUserid() {
        return createUserid;
    }

    public void setCreateUserid(Long createUserid) {
        this.createUserid = createUserid;
    }
    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }
    public Long getUpdateUserid() {
        return updateUserid;
    }

    public void setUpdateUserid(Long updateUserid) {
        this.updateUserid = updateUserid;
    }
    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    @Override
    public String toString() {
        return "TbPayOrderDetail{" +
            "id=" + id +
            ", payOrderId=" + payOrderId +
            ", payOrderNo=" + payOrderNo +
            ", businessOrderPlanId=" + businessOrderPlanId +
            ", businessOrderPlanNo=" + businessOrderPlanNo +
            ", businessOrderType=" + businessOrderType +
            ", businessOrderAmount=" + businessOrderAmount +
            ", businessId=" + businessId +
            ", businessName=" + businessName +
            ", canClearingAmount=" + canClearingAmount +
            ", remarks=" + remarks +
            ", delFlg=" + delFlg +
            ", createUserid=" + createUserid +
            ", createTime=" + createTime +
            ", updateUserid=" + updateUserid +
            ", updateTime=" + updateTime +
        "}";
    }
}
